//#define _CRT_SECURE_NO_WARNINGS
//struct ListNode* deleteDuplication(struct ListNode* pHead) {
//    // write code here
//    if (pHead == NULL || pHead->next == NULL)
//        return pHead;
//
//    struct ListNode* head = (struct ListNode*)malloc(sizeof(struct ListNode));
//    head->next = pHead;
//    struct ListNode* pre = head;
//    struct ListNode* cur = head;
//
//    while (cur != NULL) {
//        if (cur->next != NULL && cur->val == cur->next->val) {
//            cur = cur->next;
//            continue;
//        }
//        cur = cur->next;
//        if (cur != NULL && cur->next != NULL && cur->val == cur->next->val) {
//            cur = cur->next;
//            continue;
//        }
//
//        pre->next = cur;
//        pre = pre->next;
//    }
//
//    return head->next;
//}